SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Proc [dbo].[SP_TDCANJ_PROV_Q02]
/*----------------------------------------------------------------*/
/*-- Empresa		: OFISIS S.A.				  */
/*-- Cliente		: MANUELA RAMOS				  */
/*-- Sistema		: Empresa				  */
/*-- Programa		: Reporte Seguimiento Documentos 	  */
/*-- Script		: TDCANJ_PROV_Q01		  	  */
/*-- Nombre		: SP_TDCANJ_PROV_Q02	  	  	  */
/*-- Desarrollado	: JFA 				  	  */
/*-- Fecha		: 06/08/1998			 	  */
/*-- Base de Datos	: MS SQL Server 			  */
/*-- Versi½n		: 7.0					  */
/*----------------------------------------------------------------*/

/*----------------------------------------------------------------*/
/*-- Modificado por	 : Merardo Antonio Rojas Mendoza	  */
/*-- Fecha modificaci½n	 : 25/08/1998			 	  */
/*-- Detalle modificaci½n: Estandarizaci½n			  */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/*-- Modificado por	 : 					  */
/*-- Fecha modificaci½n	 : 					  */
/*-- Detalle modificaci½n: 					  */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* drop proc SP_TDCANJ_PROV_Q02	 				  */
/* grant all on SP_TDCANJ_PROV_Q02 to public			  */
/* SP_TDCANJ_PROV_Q02 '10', '00000001', '00000001','00000003' 	  */
/*----------------------------------------------------------------*/
( @ISCO_EMPR TD_VC_002,
  @ISCO_PROV TD_VC_020,
  @ISNU_CANJ TD_VC_008,
  @ISNU_RENO TD_VC_008
)
	As
Declare
 @VSTI_DOCU        TD_VC_003,
 @VSNU_DOCU_PROV   TD_VC_020,
 @VSNU_LETR_PROV   TD_VC_020, 
 @VSNU_SECU        TD_VC_001,
 @VSNU_SECU_AUXI   TD_IN_001,
 @OSTI_DOCU	   TD_VC_003   
Create Table #TWCANJ_PROV
  ( NU_OPER        Varchar(9)   NULL,
    NU_SECU        smallint  NULL,  
    CO_TIPO_DOCU   Varchar(3)   NULL,
    NU_DOCU_PROV   Varchar(20)  NULL, 
    TI_DOCU_LETR   Varchar(3)   NULL,
    NU_LETR_PROV   Varchar(20)  NULL) 

Select @VSNU_SECU = 0
EXEC SP_TTDOCU_CNTB_Q02 6,@OSTI_DOCU
/*  Cuando el Documento ha sido Originado por un Canje */
  
Declare CU_TDCANJ_PROV_Q02_1 cursor
For
Select CO_TIPO_DOCU, NU_DOCU_PROV
From TDCANJ_PROV
Where CO_EMPR = @ISCO_EMPR 
and CO_PROV = @ISCO_PROV 
and NU_CANJ = @ISNU_CANJ
and CO_TIPO_DOCU IS NOT NULL 

Open CU_TDCANJ_PROV_Q02_1
Fetch CU_TDCANJ_PROV_Q02_1 into @VSTI_DOCU, @VSNU_DOCU_PROV
While @@fetch_status = 0
  Begin
    If @@fetch_status != 0
       Begin
         Raiserror 20001 "Fin de archivo"
         Close CU_TDCANJ_PROV_Q02_1
         Deallocate CU_TDCANJ_PROV_Q02_1
         Return 
       end 

    Select @VSNU_SECU = @VSNU_SECU + 1

    Insert into #TWCANJ_PROV (NU_OPER, NU_SECU, CO_TIPO_DOCU, NU_DOCU_PROV)    
    Values ('C'+@ISNU_CANJ, @VSNU_SECU, @VSTI_DOCU, @VSNU_DOCU_PROV)

    Fetch CU_TDCANJ_PROV_Q02_1 into @VSTI_DOCU, @VSNU_DOCU_PROV
  End

Close CU_TDCANJ_PROV_Q02_1
Deallocate CU_TDCANJ_PROV_Q02_1

Select @VSNU_SECU = 0

Declare CU_TDCANJ_PROV_Q02_1 cursor
For
Select 'LET', t1.NU_LETR_PROV
From TDCANJ_PROV t1, TMLETR_PROV t2
Where t1.CO_EMPR = @ISCO_EMPR and
t1.CO_EMPR = t2.CO_EMPR and
t1.CO_PROV = @ISCO_PROV and
t1.CO_PROV = t2.CO_PROV  and
t1.NU_LETR_PROV = t2.NU_LETR_PROV  and
t1.NU_CANJ = @ISNU_CANJ AND
t1.NU_LETR_PROV IS NOT NULL 

Open CU_TDCANJ_PROV_Q02_1
Fetch CU_TDCANJ_PROV_Q02_1 into @VSTI_DOCU, @VSNU_LETR_PROV
While @@fetch_status = 0
  Begin
    If @@fetch_status != 0
       Begin
         Raiserror 20001 "Fin de archivo"
         Close CU_TDCANJ_PROV_Q02_1
         Deallocate CU_TDCANJ_PROV_Q02_1
         Return 
       end 

    Select @VSNU_SECU = @VSNU_SECU + 1

    If NOT Exists ( Select * From #TWCANJ_PROV Where NU_SECU = @VSNU_SECU)
       Insert into #TWCANJ_PROV (NU_OPER, NU_SECU, TI_DOCU_LETR, NU_LETR_PROV)    
       Values ('C'+@ISNU_CANJ, @VSNU_SECU, @VSTI_DOCU, @VSNU_LETR_PROV)
    Else
       Update #TWCANJ_PROV Set TI_DOCU_LETR = @VSTI_DOCU, NU_LETR_PROV = @VSNU_LETR_PROV
       Where NU_SECU = @VSNU_SECU  

    Fetch CU_TDCANJ_PROV_Q02_1 into @VSTI_DOCU, @VSNU_LETR_PROV
  End

close CU_TDCANJ_PROV_Q02_1
deallocate CU_TDCANJ_PROV_Q02_1

/* Cuando el Documento ha Sido Renovado */

Select @VSNU_SECU_AUXI = @VSNU_SECU

Declare CU_SP_TDRENO_PROV_Q01 cursor
For
Select CO_TIPO_DOCU, NU_DOCU_PROV
From TDRENO_PROV
Where CO_EMPR = @ISCO_EMPR and CO_PROV = @ISCO_PROV and NU_RENO = @ISNU_RENO and CO_TIPO_DOCU IS NOT NULL 

Open CU_SP_TDRENO_PROV_Q01
Fetch CU_SP_TDRENO_PROV_Q01 into @VSTI_DOCU, @VSNU_DOCU_PROV
While @@fetch_status = 0
  Begin
    If @@fetch_status != 0
       Begin
	 Raiserror 20001 "Fin de archivo"
         Close CU_SP_TDRENO_PROV_Q01
         Deallocate CU_SP_TDRENO_PROV_Q01
         Return 
       end 

    Select @VSNU_SECU = @VSNU_SECU + 1

    Insert into #TWCANJ_PROV (NU_OPER, NU_SECU, CO_TIPO_DOCU, NU_DOCU_PROV)    
    Values ('R'+@ISNU_RENO,@VSNU_SECU, @VSTI_DOCU, @VSNU_DOCU_PROV)

    Fetch CU_SP_TDRENO_PROV_Q01 into @VSTI_DOCU, @VSNU_DOCU_PROV
  End

Close CU_SP_TDRENO_PROV_Q01
deallocate CU_SP_TDRENO_PROV_Q01


Declare CU_SP_TDRENO_PROV_Q01 cursor
For
Select 'LET', t1.NU_LETR_PROV
From TDRENO_PROV t1, TMLETR_PROV t2
Where t1.CO_EMPR = @ISCO_EMPR and
t1.CO_EMPR = t2.CO_EMPR and
t1.CO_PROV= @ISCO_PROV and
t1.CO_PROV = t2.CO_PROV  and
t1.NU_LETR_PROV = t2.NU_LETR_PROV  and
t1.NU_RENO = @ISNU_RENO and
t1.NU_LETR_PROV IS NOT NULL 

Open CU_SP_TDRENO_PROV_Q01
Fetch CU_SP_TDRENO_PROV_Q01 into @VSTI_DOCU, @VSNU_LETR_PROV
While @@fetch_status = 0
  Begin
    If @@fetch_status != 0
       Begin
         Raiserror 20001 "Fin de archivo"
         Close CU_SP_TDRENO_PROV_Q01
         Deallocate CU_SP_TDRENO_PROV_Q01
         Return 
       end 

    Select @VSNU_SECU_AUXI = @VSNU_SECU_AUXI + 1

    If NOT Exists ( Select * From #TWCANJ_PROV Where NU_SECU = @VSNU_SECU_AUXI)
       Insert into #TWCANJ_PROV (NU_OPER , NU_SECU, TI_DOCU_LETR, NU_LETR_PROV)    
       Values ('R'+@ISNU_RENO, @VSNU_SECU_AUXI, @VSTI_DOCU, @VSNU_LETR_PROV)
    Else
       Update #TWCANJ_PROV Set TI_DOCU_LETR = @VSTI_DOCU, NU_LETR_PROV = @VSNU_LETR_PROV
       Where NU_SECU = @VSNU_SECU_AUXI  

    Fetch CU_SP_TDRENO_PROV_Q01 into @VSTI_DOCU, @VSNU_LETR_PROV
  End

Close CU_SP_TDRENO_PROV_Q01
Deallocate CU_SP_TDRENO_PROV_Q01

Select NU_OPER, CO_TIPO_DOCU, NU_DOCU_PROV, TI_DOCU_LETR, NU_LETR_PROV 
from #TWCANJ_PROV
ORDER BY NU_OPER, NU_SECU
Return

/*------------------------------ FIN ---------------------------------*/


GO
